///////////////////////////////////////////////////////////
//  ICollection.h
//  Implementation of the Interface ICollection
//  Created on:      20-Aug-2013 12:02:45 AM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_32073EE5_A61B_4ef6_8561_8B391FCBD774__INCLUDED_)
#define EA_32073EE5_A61B_4ef6_8561_8B391FCBD774__INCLUDED_

#include "IObject.h"

namespace Data
{
class ICollection : public IObject
{

public:
	virtual IObject* GetChild(unsigned int index) const =0;
	virtual void AppendChild(IObject* item) =0;
	virtual void InsertChild(unsigned int index, IObject* item) =0;
	virtual IObject* RemoveChild(unsigned int index) =0;
	virtual int CountChilds() const =0;
  virtual IObject* operator[](unsigned int index) =0;
	virtual IObject* GetParent() =0;
	virtual void SetParent(IObject* parent) =0;
};
}
#endif // !defined(EA_32073EE5_A61B_4ef6_8561_8B391FCBD774__INCLUDED_)
